package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.qmyx.admin.model.BaseGroupInfo;
import com.ytjj.qmyx.admin.model.request.GroupActivityReq;
import com.ytjj.qmyx.admin.model.request.goods.GoodsRequest;
import com.ytjj.qmyx.admin.model.vo.GroupActivityVO;
import com.ytjj.qmyx.admin.model.vo.ProductVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

public interface GroupActivityService {

    /**
     * 模块:拼团活动页
     * 功能:列表条件查询
     * @param groupActivityReq
     * @return
     */
    CommonPage<GroupActivityVO> selectGroupList(GroupActivityReq groupActivityReq);

    /**
     * 模块:拼团活动页
     * 功能:新增商品
     * @param baseGroupInfo
     * @return
     */
    boolean insertGroup(BaseGroupInfo baseGroupInfo);

    /**
     * 模块:拼团活动页
     * 功能:移除拼团（逻辑删除）
     * @param id
     * @return
     */
    boolean deleteGroup(Integer id);

    /**
     * 模块:拼团活动页
     * 功能:按商品id查询是否存在此商品
     * @param id
     * @return
     */
    Integer judgeProduct(Integer id);

    /**
     * 模块:拼团活动页
     * 功能:按商品id查询商品信息
     */
    ProductVO selectProduct(Integer id);

    /**
     * 模块:拼团活动页
     * 功能:按团配置ID修改信息
     */
    boolean updateGroup(@Param("baseGroupInfo") BaseGroupInfo baseGroupInfo);

    /**
     * 模块:拼团活动页
     * 功能:按团ID查询配置详情
     * @param id
     * @return
     */
    BaseGroupInfo detailById(Integer id);

    /**
     * 模块:拼团活动页
     * 功能:编辑商品信息接口
     * @param goodsRequest
     * @return
     */
    boolean updateProduct( GoodsRequest goodsRequest);

    /**
     * 模块:拼团活动页
     * 功能:编辑商品信息->团购价
     * @param id
     * @param groupPrice
     * @return
     */
    boolean updateGroupPrice(Integer id,BigDecimal groupPrice);

    /**
     * 模块:拼团活动页
     * 功能:按商品ID查询商品状态
     * @param productId
     * @return
     */
    String judgeState(Integer productId);

    /**
     * 模块:拼团活动页
     * 功能:新增商品状态为：GROUP_WORK
     * @param productId
     * @return
     */
    boolean updateState(Integer productId);

    /**
     * 模块:拼团活动页
     * 功能:修改商品表状态：activity_type
     * @param productId
     * @return
     */
    boolean updateActivity(Integer productId);

    /**
     * 模块:拼团活动页
     * 功能:判断商品是否是H5
     * @param productId
     * @return
     */
    String judgeH5(Integer productId);
}
